package src.controller;

/**
 * <b>Overview</b><br>
 * <p></p>
 * <br><br>
 * <b>Responsibilites</b><br>
 * <p></p>
 * <br><br>
 * <b>Collaborators</b>
 * <br><br>
 * <b>Implementor</b> - <br>
 * <b>Tester</b> - <br>
 * 
 * @author Bruce
 */
public enum Direction
{
	N ( 0, -1, true, true), 
	W ( -1, 0, true, true), 
	E ( 1, 0, true, true), 
	S ( 0, 1, true, true), 
	NW ( -1, -1, true, false), 
	NE (1, -1, true, true), 
	SW ( -1, 1, true, true), 
	SE ( 1, 1, true, false);

	private final int xChange, yChange;
	
	private final boolean octCoordValid, hexCoordValid;

	Direction(int xChange, int yChange, boolean octCoordValid, boolean hexCoordValid){
		this.xChange = xChange;
		this.yChange = yChange;
		this.octCoordValid = octCoordValid;
		this.hexCoordValid = hexCoordValid;
	}	

	public int xChange(){
		return this.xChange;
	}

	public int yChange(){
		return this.yChange;
	}

	public boolean octCoordValid(){
		return this.octCoordValid;
	}

	public boolean hexCoordValid(){
		return this.hexCoordValid;
	}
}
